package com.method.HomeWork02;
/*
一个大V直播抽奖，奖品是现金红包，分别有{2,588,888,1000,10000}五个奖金。请使用代码模拟抽奖，
打印出每个奖项，奖项的出现顺序要随机且不重复。
打印效果如下：（随机顺序，不一定是下面的顺序）
888元的奖金被抽出
588元的奖金被抽出
10000元的奖金被抽出
1000元的奖金被抽出
2元的奖金被抽出
操作步骤:
1. 定义奖金的数组arr。
2. 定义数组brr准备存放已经被抽过的奖金，两个数组长度相同。
3. 定义一个变量index,用户代表数组brr的索引。
4. 定义方法，判断数组中是否存在某数字，存在返回true,不存在返回false。
5. 写一个while循环，如果index<arr.length则说明奖项没有被抽完继续抽取。
6. 在循环中使用随机数产生一个随机索引i。
7. 使用步骤4的方法判断brr数组中是否包含arr[i]奖金。
8. 如果不包含，则打印arr[i]奖金，并且把它放入brr数组中代表已经被抽取过，同时index加一。
 */

import java.util.Random;

import static com.method.HomeWork02.HomeWork08.judge;

public class HomeWork08_02 {
    public static void main(String[] args) {
        //  1. 定义奖金的数组arr。
        int[] arr = {888, 588, 10000, 1000, 2};
        //  定义数组brr准备存放已经被抽过的奖金，两个数组长度相同。
        int[] brr = new int[5];
        // 定义一个变量index,用户代表数组brr的索引。
        int index = 0;
        Random r = new Random();
        //  写一个while循环，如果index<arr.length则说明奖项没有被抽完继续抽取。
        while (index < arr.length) {
            //5.1每次生成一个随机索引对应一个奖金
            int i = r.nextInt(arr.length);
            //5.2调用方法判断这个奖金是否被获取过
            boolean b = judge(brr, arr[i]);
            //5.3  b是false代表这个奖金没有被抽取过
            if (!b) {
//5.4把获取之后的奖金存放到brr中
                brr[index] = arr[i];
                //5.5index索引向后移动一次
                index++;
                //5.6打印本次被抽出的奖项
                System.out.println(arr[i] + "元的奖金被抽出");
            }
        }
    }

    // 定义方法，判断数组中是否存在某数字，存在返回true,不存在返回false。
    public static boolean judge(int[] brr, int num) {
        // 遍历 数组brr
        for (int i = 0; i < brr.length; i++) {
            // brr[i]
            if (brr[i] == num) {
                return true;
            }
        }
        return false;
    }
}







